package singleton;

import sun.awt.image.VSyncedBSManager;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:咭咭熊
 * Date:2021 - 08 - 27
 * Time:11:06
 */

/***
 * 使用双重检查
 * 条件1——如果实例创建了，就不需要同步了，直接返回即可；
 * 条件2——如果被同步的线程中，有一个线程创建了对象，那么其余的线程就不用了创建了；
 * 解法4——在线程同步之前再加一个（instance == null）的条件判断，
 * 如果对象已经创建了，那么就不需要线程的同步了；
 */
public class Singleton4 {
    private Singleton4(){

    }
    private static Singleton4 insatnce = null;

    public static Singleton4 getInstance(){
        if(insatnce == null){
            synchronized (Singleton4.class){
                if(insatnce == null){
                    insatnce = new Singleton4();
                }
            }
        }
        return  insatnce;
    }
}
